import Singleton from "db://assets/Base/Singleton"
import { TileManager } from "db://assets/Scripts/Tile/TileManager"
import { ITile } from "db://assets/Levels"
import { PlayerManager } from "../Scripts/Player/PlayerManager"
import { DoorManager } from "../Scripts/Door/DoorManager"
import { EnemyManager } from "../Base/EnemyManager"
import { BurstManager } from "../Scripts/Burst/BurstManager"
import { SpikesManager } from "../Scripts/Spikes/SpikesManager"
import { SmokeManager } from "../Scripts/Smoke/SmokeManager"


export default class DataManager extends Singleton {
  reset() {
      this.mapInfo = []
      this.tileInfo = []
      this.mapRowCount = 0
      this.player = null
      this.enemies = []
      this.bursts = []
      this.spikes = []
      this.smokes = []
      this.mapColumnCount = 0
  }

  static get Instance() {
    return super.GetInstance<DataManager>()
  }

  mapInfo: Array<Array<ITile>>
  tileInfo: Array<Array<TileManager>>
  mapRowCount: number = 0
  mapColumnCount: number = 0
  levelIndex: number = 1
  player: PlayerManager
  door: DoorManager
  enemies: EnemyManager[]
  bursts: BurstManager[]
  spikes: SpikesManager[]
  smokes: SmokeManager[]
}
